package DAO;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import CORE.GenericDAO;
import DTO.AutorLivroDTO;

public class AutorLivroDAO extends GenericDAO<AutorLivroDTO>{

	public AutorLivroDAO() {
		super("autores", AutorLivroDTO.class);
	}		
	
	@Override
	public String gerarSQLRemover() {
		StringBuilder sql = new StringBuilder();                        
		sql.append("DELETE FROM ");
		sql.append(tabela);
		sql.append(" WHERE autor = (?) AND obra = (?);");
		return sql.toString();
	}
	
	@Override
	public void setarPSExcluir(PreparedStatement ps, AutorLivroDTO autorLivro) throws SQLException {
		setarPSIncluir(ps, autorLivro);
	}

	@Override
	public void setarPSIncluir(PreparedStatement ps, AutorLivroDTO autorLivro) throws SQLException {
		ps.setLong(1, autorLivro.getAutor().getCodigo());
		ps.setLong(2, autorLivro.getObra().getCodigo());
	}
	
	@Override
	public AutorLivroDTO criarObjeto(ResultSet rs) throws SQLException {
		AutorLivroDTO autorLivro = new AutorLivroDTO();
		autorLivro.setObra(new ObraDAO().pesquisarPorCodigo(rs.getLong(1)));
		autorLivro.setAutor(new AutorDAO().pesquisarPorCodigo(rs.getLong(2)));
		return autorLivro;
	}	
}